package cn.acmenms.manager.redis;

import java.util.concurrent.TimeUnit;

/**
 * @ClassName: RedisManager
 * @Description: redis管理工具
 * @author: 神奇的鸭鸭
 * @Date: 2018/2/8 15:48
 */
public interface RedisManager {

    /**
     * 获取String类型key-value
     *
     * @param key key
     * @return value
     */
    String get(String key);

    /**
     * 设置String类型key-value并添加过期时间(分钟单位)
     * @param key   key
     * @param value value
     * @param time  过期时间,毫秒单位
     */
    void setForTimeMIN(String key, String value, long time);

    /**
     * 对一个key-value的值进行加减操作,
     * 如果该key不存在,将创建一个key并赋值该number
     * 如果key存在,但value不是长整型,将报错
     * @param key    key
     * @param number number
     */
    Long increment(String key, long number);

    /**
     * 给一个指定的 key 值附加过期时间
     * @param key key
     * @param time exp time
     * @param type time type
     * @return true/false
     */
    boolean expire(String key, long time, TimeUnit type);

    /**
     * 删除 key-value
     * @param key key
     * @return true/false
     */
    boolean delete(String key);
}